package cc.rengu.igas.share.facade.bean.cups;

import cc.rengu.oltp.service.common.enums.OltpRpcdEnum;
import cc.rengu.oltp.service.model.BizException;

import java.util.Arrays;

/**
 * F48 AS AO 用法 关联业务标识
 *
 * @author fangminwei
 * @date 2021/4/17
 */
@SuppressWarnings("AlibabaEnumConstantsMustHaveComment")
public enum F48_AS_AO_RelBusiEnum {
    _01("01", "有卡自助消费业务"),
    _02("02", "无卡自助消费业务账户定制"),
    _03("03", "互联网消费"),
    _04("04", "订购"),
    _05("05", "柜面无卡存款"),
    _06("06", "自助存款"),
    _07("07", "自助转账"),
    _08("08", "互联网转账"),
    _09("09", "代收"),
    _10("10", "贷记及实名认证"),
    _11("11", "预付费卡充值"),
    _12("12", "无卡自助业务动态验证信息触发，用于无卡自助消费业务的支付"),
    _13("13", "无卡建立委托动态验证信息触发"),
    _14("14", "无卡自助消费业务开通和关闭"),
    _15("15", "柜面转账"),
    _16("16", "无卡自助消费业务开通状态查询"),
    _17("17", "小额临时支付开通"),
    _18("18", "无卡自助业务动态验证信息触发，用于无卡自助消费业务的开通和支付"),
    _19("19", "保留使用"),
    _20("20", "保留使用"),
    _21("21", "保留使用"),
    _22("22", "保留使用"),
    _23("23", "保留使用"),
    _24("24", "保留使用"),
    _25("25", "保留使用"),
    _26("26", "参见《对公预授权技术实施指南》"),
    _27("27", "借记转账签约业务"),
    _28("28", "保留使用"),
    _32("32", "账户验证交易中表示代收业务动态验证短信触发"),
    ;

    private String code;
    private String desc;

    F48_AS_AO_RelBusiEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public String getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return code + "-" + desc;
    }

    public static F48_AS_AO_RelBusiEnum find(String code) {
        F48_AS_AO_RelBusiEnum result = Arrays.stream(F48_AS_AO_RelBusiEnum.values())
                .filter(e -> e.getCode().equals(code)).findFirst().orElse(null);

        if (result == null) {
            throw new BizException(OltpRpcdEnum.PARAM_IS_EMPTY_OR_NULL.getRespCode(), "找不到对应的枚举信息" + code);
        }
        return result;
    }
}
